﻿// See https://aka.ms/new-console-template for more information

//程序需求：
//用户需要输入参与抽奖的人员名单。
//用户需要输入奖品种类及数量。
//程序需要随机抽取中奖者，并分配奖品。
//程序需要输出中奖名单及对应的奖品。

//核心功能：
//随机数生成：用于抽取中奖者。
//列表操作：用于存储和管理参与者和奖品。
//输出结果：以清晰的方式展示中奖名单和奖品。

//实现步骤：
//创建参与者列表和奖品列表。
//实现抽奖逻辑，随机选择中奖者。
//分配奖品给中奖者。
//输出中奖结果。

        // 输入参与者名单
        Console.WriteLine("请输入参与者名单，以逗号分隔：");
        string participantsInput = Console.ReadLine();
        List<string> participants = participantsInput.Split(',').ToList();

        // 输入奖品种类和数量
        Console.WriteLine("请输入奖品种类和数量，以'奖品名称:数量'的形式输入，以逗号分隔：");
        string prizesInput = Console.ReadLine();
        Dictionary<string, int> prizes = new Dictionary<string, int>();
        foreach (var item in prizesInput.Split(','))
        {
            var parts = item.Split(':');
            if (parts.Length == 2 && int.TryParse(parts[1], out int quantity))
            {
                prizes[parts[0]] = quantity;
            }
            else
            {
                Console.WriteLine("输入格式错误，请按'奖品名称:数量'的格式输入。");
                return;
            }
        }

        // 抽奖逻辑
        Random random = new Random();
        Dictionary<string, string> winners = new Dictionary<string, string>();
        foreach (var prize in prizes)
        {
            for (int i = 0; i < prize.Value; i++)
            {
                if (participants.Count == 0)
                {
                    break;
                }
                int winnerIndex = random.Next(participants.Count);
                winners.Add(participants[winnerIndex], prize.Key);
                participants.RemoveAt(winnerIndex);
            }
        }

        // 输出中奖名单及奖品
        Console.WriteLine("中奖名单及奖品：");
        foreach (var winner in winners)
        {
            Console.WriteLine($"中奖者: {winner.Key},奖品: {winner.Value}");
        }
